通常,JPA实体类被定义到一个persistence.xml
文件,在Spring Boot中,这个文件被'实体扫描'取代。默认情况,Spring Boot会查找主配置类(被@EnableAutoConfiguration
或@SpringBootApplication
注解的类)下的所有包。
任何被@Entity
,@Embeddable
或@MappedSuperclass
注解的类都将被考虑,一个普通的实体类看起来像这样:
package com.example.myapp.domain;
import java.io.Serializable;
import javax.persistence.*;
@Entity
public class City implements Serializable {
@Id
@GeneratedValue
private Long id;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private String state;
// ... additional members, often include @OneToMany mappings
protected City() {
// no-args constructor required by JPA spec
// this one is protected since it shouldn't be used directly
}
public City(String name, String state) {
this.name = name;
this.country = country;
}
public String getName() {
return this.name;
}
public String getState() {
return this.state;
}
// ... etc
}
注 你可以使用@EntityScan
注解自定义实体扫描路径,具体参考Section 74.4, “Separate @Entity definitions from Spring configuration”。